package c3p0;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

/*
*  验证c3p0的配置文件--c3p0-config.xml里的代码

* */

public class c3p0Demo02 {
    public static void main(String[] args) throws SQLException {
        //获取DataSource
        DataSource aa = new ComboPooledDataSource();  //不传参数使用的是c3p0-config.xml里的默认配置
        //DataSource aa = new ComboPooledDataSource(otherc3p0); //传了一个参数名字,使用的就是指定的配置
        //获取连接对象
        // 验证连接池中的最大连接数量

        // 这里我们设置的最大连接数量是10个,有一个办法能获取到第11个连接对象,需要用到close方法,close方法在连接池当中是归还对象到连接池当中
        for (int i = 1; i <= 11; i++) {
            Connection bb = aa.getConnection();
            System.out.println(i + ":" + bb);
            if (i == 5) {
                bb.close();//这里的close方法是将对象归还到连接池当中,并且可以继续使用
                //在将第五个对象使用后并归还了之后,连接池当中又多了一个对象可以使用,于是第六个连接对象和第五个对象是同一个对象
            }
        }
    }
}
